package cn.kgc.utils;

/**
 * @author shkstart
 * @create 2020-02-24 8:58
 */
public class ResultEntity<T> {
    private String result; //进行判断 成功还是失败
    private String message;//是否有结果
    private T data;//是否有数据
    public ResultEntity() {
    }

    public ResultEntity(String result, String message, T data) {
        this.result = result;
        this.message = message;
        this.data = data;
    }

    //定义成常量
    public static final String SUCCESS = "SUCCESS";
    public static final String FAILED = "FAILED";
    public static final String NO_MESSAGE = "NO_MESSAGE";
    public static final String NO_DATA = "NO_DATA";


    // 方便返回成功结果（不携带查询结果情况）
    //成功  ,没结果 没数据
    public static ResultEntity<String> successWithoutData() {
        return new ResultEntity<String>(SUCCESS, NO_MESSAGE, NO_DATA);
    }

    // 方便返回成功结果（携带查询结果情况）
    //成功 没结果 有数据
    public static <T> ResultEntity<T> successWithoutData(T data) {
        return new ResultEntity<T>(SUCCESS, NO_MESSAGE, data);
    }

    // 方便返回失败结果
    //失败 有结果 没数据
    public static ResultEntity<String> failed(String message) {
        return new ResultEntity<String>(FAILED, message, NO_DATA);
    }

    // 方便返回失败结果
    //失败  有结果  有数据
    public static <E> ResultEntity<E> failed(E data, String message) {
        return new ResultEntity<E>(FAILED, message, data);
    }

    public String getResult() {
        return result;
    }

    public void setResult(String result) {
        this.result = result;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }

}
